home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 7 / Apprentice-Release7.iso / Environments / MacMETH 3.2.4 / Examples / In.MOD < prev    next >
Text File  |  1996-06-20  |  1KB  |  57 lines

  1. IMPLEMENTATION MODULE In;
  2.  
  3. IMPORT InOut;
  4.  
  5.   PROCEDURE Open;
  6.   BEGIN
  7.     InOut.WriteString("Please type the name of the input file,"); InOut.WriteLn;
  8.     InOut.WriteString("or press TAB to choose it interactively."); InOut.WriteLn;
  9.     InOut.OpenInput(""); Done := InOut.Done
  10.   END Open;
  11.  
  12.   PROCEDURE Char(VAR ch: CHAR);
  13.   BEGIN
  14.        IF Done THEN InOut.Read(ch);  Done := Done & InOut.Done END
  15.   END Char;
  16.  
  17.   PROCEDURE Int(VAR p: INTEGER);
  18.   BEGIN IF Done THEN InOut.ReadInt(p); Done := Done & InOut.Done END
  19.   END Int;
  20.  
  21.   PROCEDURE LongInt(VAR i: LONGINT);
  22.   BEGIN
  23.        IF Done THEN InOut.ReadLongInt(i); Done := Done & InOut.Done END
  24.   END LongInt;
  25.  
  26.   PROCEDURE Real(VAR p: REAL);
  27.   BEGIN IF Done THEN InOut.ReadReal(p); Done := Done & InOut.Done END
  28.   END Real;
  29.  
  30.   PROCEDURE LongReal(VAR p: LONGREAL);
  31.   BEGIN
  32.        IF Done THEN InOut.ReadLongReal(p); Done := Done & InOut.Done END
  33.   END LongReal;
  34.  
  35.   PROCEDURE Name(VAR nme: ARRAY OF CHAR);
  36.   BEGIN
  37.        IF Done THEN InOut.ReadString(nme); Done := Done & InOut.Done END
  38.   END Name;
  39.  
  40.   PROCEDURE String(VAR str: ARRAY OF CHAR);
  41.   CONST CR = 15C;  NUL = 0C;
  42.   VAR ch: CHAR;  j: INTEGER;
  43.   BEGIN
  44.       IF Done THEN
  45.           REPEAT  Char(ch)  UNTIL ((ch # " ") & (ch # CR)) OR ~Done;
  46.           j := 0;
  47.           WHILE Done & (ch # " ") & (ch # CR) DO  
  48.               IF j < SIZE(str) - 1 THEN str[j] := ch;  INC(j)  END;
  49.               Char(ch)
  50.           END;
  51.           str[j] := NUL; Done := j # 0
  52.       END
  53.   END String;
  54.  
  55. BEGIN Done := TRUE
  56. END In.
  57.